using DL.AnimatorEvents;
using DL.Combat.Base.Detection;
using UnityEngine;

namespace DL.Combat.Base
{
    public abstract class CharacterWeaponCombatBase
    {
        protected AnimatorEvent AnimatorEvent;
        protected Transform Self;
        protected Animator Animator;
        protected WeaponDetectionCast WeaponDetectionCast;
        
        
        /// <summary>
        /// 武器伤害检测开启
        /// </summary>
        protected virtual void DamagedDetectionOpen()
        {
        
        }
        
        /// <summary>
        /// 武器伤害检测结束
        /// </summary>
        protected virtual void DamagedDetectionClose()
        {
        
        }
        
        /// <summary>
        /// 触发伤害
        /// </summary>
        protected virtual void TriggerDamaged(Transform enemy)
        {
            
        
        }

        /// <summary>
        /// 攻击动作检查
        /// </summary>
        public virtual bool ExecuteAttack_Pre()
        {
            return true;
        }

        /// <summary>
        /// 攻击动作执行
        /// </summary>
        public abstract void ExecuteAttackAction();
        

        /// <summary>
        /// 攻击输入
        /// </summary>
        public abstract void ActionInput();
    }
}
